package com.xjj.tree;

import com.xjj.TreeNode;

public class E0111MinimumDepthOfBinaryTree {

    public int minDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }
        return calc(root);
    }

    private int calc(TreeNode root) {
        // 单边null不行
        if (root == null) {
            // 如果不把方法提出来,这里得返回0,[]认为是0,那后面就需要判断下单边不能走下去
            return Integer.MAX_VALUE;
        }
        // 叶子节点
        if (root.left == null && root.right == null) {
            return 1;
        }
        int result = Math.min(calc(root.left), calc(root.right)) + 1;
        return result;
    }
}
